import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Scanner;

public class App1 {
	/**
	 * Программа для реализации деления в стопчик.
	 */
        static Scanner in = new Scanner(System.in);

        public static void main(String... args) {
                Integer[] res = inputNum();
                ArrayList<Integer[]> matrix = calc(res);
                output(res, matrix);
                System.out.println("end");

        }
        /**
         * Мотед для введения данных
         * @return Integer[]
         */

        private static Integer[] inputNum() {

                Integer[] res = new Integer[2];
                try {
                        System.out.println("ВВедіть число:");
                        res[0] = in.nextInt();
                        do{
                                System.out.println("Введіть дільник (відмінний від 0):");
                                res[1] = in.nextInt();  
                        }while(res[1] == 0);
                       
                } catch (InputMismatchException e) {
                        System.out.println("You must input the int-type symbols!!!");
                        System.out.println("The programm will be close.");
                        System.exit(0);
                }

                return res;
        }

        /**
         * Метод для перевода числа в ArrayList цифр
         * @param n
         * @return ArrayList<Integer>
         */
        private static ArrayList<Integer> toList(Integer n) {
                String s = n.toString();
                String[] s1 = s.split("");
                ArrayList<Integer> arrNum = new ArrayList<Integer>();
                for (int i = 1; i < s1.length; i++) {
                        arrNum.add(new Integer(s1[i]));
                }
                return arrNum;
        }

        /**
         * Метод для вычисления результата и остатка, после каждой итерации
         * @param num
         * @return ArrayList<Integer[]>
         */
        private static ArrayList<Integer[]> calc(Integer[] num) {
                ArrayList<Integer[]> res = new ArrayList<Integer[]>();
                ArrayList<Integer> arrNum = toList(num[0]);
                Integer tmp = arrNum.get(0);

                for (int i = 0; i < arrNum.size();) {
                        try {
                                if (tmp < num[1]) {

                                        do {
                                                if (i < arrNum.size()) {
                                                        i++;
                                                        tmp = tmp * 10 + arrNum.get(i);
                                                }
                                        } while (tmp < num[1]);
                                        res.add(new Integer[] { tmp / num[1], tmp % num[1] });
                                        i++;
                                } else {
                                        res.add(new Integer[] { tmp / num[1], tmp % num[1] });
                                        i++;
                                }

                                tmp = res.get(res.size() - 1)[1] * 10 + arrNum.get(i);
                        } catch (IndexOutOfBoundsException e) {
                                //res.add(new Integer[] { tmp / num[1], tmp % num[1] });
                                break;
                        }

                }
                return res;
        }

        /**
         * Метод для вывода данных на экран.
         * @param num
         * @param matrix
         */
        private static void output(Integer[] num, ArrayList<Integer[]> matrix) {

                ArrayList<Integer> arrNum = toList(num[0]);
                int indMatr = 0;
                int tmp = arrNum.get(0);
               
                System.out.println(num[0] + "|__" + num[1]);
               
                for(int i = 0; i < arrNum.size(); i++){
                        System.out.print(" ");
                }
               
                for(int i = 0; i < matrix.size(); i++){
                       
                        System.out.print(matrix.get(i)[0]);
                }
                System.out.println();
               
               
                for (int i = 0; i < arrNum.size() -1;) {
                        for (int j = 0; j < i; j++) {
                                System.out.print(" ");
                        }
                        while (tmp < num[1]) {
                                if (i < arrNum.size()-1) {
                                        i++;
                                        tmp = tmp * 10 + arrNum.get(i);
                                }
                        }
                        System.out.println(tmp);
                       
                       
                        for (int j = 0; j < i - 1; j++) {
                                System.out.print(" ");
                        }
                        System.out.println((matrix.get(indMatr)[0] * num[1]) + matrix.get(indMatr)[1]);
                       
                        for (int j = 0; j < i -1; j++) {
                                System.out.print(" ");
                        }
                        System.out.println("__");
                       
                        for (int j = 0; j < i; j++) {
                                System.out.print(" ");
                        }
                        System.out.println(matrix.get(indMatr)[1]);
                       
                        tmp = matrix.get(indMatr)[1];
                        indMatr++;
                       
                }
               
                System.out.print("Результат = ");
                for(int i = 0; i < matrix.size(); i++){
                        System.out.print(matrix.get(i)[0]);
                }
               
                System.out.println();
                System.out.println("Остача = " + matrix.get(matrix.size() -1)[1]);
                       

        }
        /*
         * private ArrayList<Integer[]> calcIfLess(Integer[] num){
         * ArrayList<Integer[]> res = new ArrayList<Integer[]>(); ArrayList<Integer>
         * arrNum = toList(num[0]);
         *
         * return res; }
         */
}
